// 1.加载express模块
const express = require('express')

// 2.创建一个服务区
const app = express()

// 3.开启服务器
app.listen(3006, ()=>{console.log('写接口项目启动了');})

// 4.处理客户端的请求

// 加载 cors
const cors = require('cors');
app.use(cors());

//加载abc查询函数,自己写的一个查询的方法
const abc = require('./03.封装一个连接数据库的方法')

//****************获取文章分类********************** */
// get /my/article/cates
app.get('/my/article/cates', (req, res)=>{
  abc('select * from category', null, (err, result)=>{
    if(err) {
      res.send({
        status: 1,
        message: '获取分类失败',  
      })
    } else {
      res.send({
        status: 0,
        message: '获取分类成功',
        data: result
      })
    }
  })
})
//****************新增文章分类********************** */
// 配置一下，使用express提供的方法来接收客户端提交的查询字符串;并且把接收到的结果赋值给 req.body
app.use(express.urlencoded({ extended: false }));
// post /my/article/addcates 请求体：name/alias接口文档要求的参数
app.post('/my/article/addcates', (req, res)=>{
    // 1. 首先，应该接收数据（接收客户端提交的name和alias）
    // console.log(req.body); // { name: '英语', alias: 'English' }
    // 2. 写一个insert语句，把数据添加到数据
    abc('insert into category set ?', req.body, (err, result) => {
      if (err) {
          console.log(err.message);
          res.send({ status: 1, message: '添加分类失败' });
      } else {
          res.send({ status: 0, message: '添加分类成功' });
      }
  });
})

//****************根据id删除文章分类********************** */
// get /my/article/deletecate/:id   参数id
app.get('/my/article/deletecate/:id', (req, res)=>{
  // 1. 获取id参数（这种url参数，express提供了一个获取参数的属性，叫做 req.params）
  // console.log(req.params); // { id: '5' }
  // 2. 写 delete 语句，删除数据
  // 3.实行的方法就是postman中http://localhost:3006/my/article/deletecate/22
  abc('delete from category where Id=?', req.params.id, (err, result)=>{
    if (err) {
      res.send({ status: 1, message: '删除分类失败' });
  } else {
      res.send({ status: 0, message: '删除分类成功' });
  } 
  })
})

//****************根据id更新文章分类********************** */
// post /my/article/updatecate 请求体：Id/name/alias
app.post('/my/article/updatecate', (req, res)=>{
  abc('update category set ? where Id=?', [req.body, req.body.Id], (err, result)=>{
    if (err) {
      console.log(err.message);
      res.send({status: 1, message: '修改分类失败'});
  } else {
      // console.log(result); // 
      res.send({status: 0, message: '修改分类成功'});
  }
  })
})


